package com.jingdianjichi.subject.infra.basic.service;

import com.jingdianjichi.subject.infra.basic.entity.SubjectMapping;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 题目分类关系表(SubjectMapping)表服务接口
 *
 * @author makejava
 * @since 2025-07-13 10:55:27
 */
public interface SubjectMappingService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    SubjectMapping queryById(Long id);

    /**
     * 分页查询
     *
     * @param subjectMapping 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */


    /**
     * 新增数据
     *
     * @param subjectMapping 实例对象
     * @return 实例对象
     */
    int insert(SubjectMapping subjectMapping);

    /**
     * 修改数据
     *
     * @param subjectMapping 实例对象
     * @return 实例对象
     */
    SubjectMapping update(SubjectMapping subjectMapping);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);
    /**
     * 根据分类id查询标签ids
     */
    List<SubjectMapping> queryLabelIdList(SubjectMapping subjectMapping);

    /**
     *基于分类id和标签id查询出 subjectIds
     * @param categoryId
     * @param labelId
     * @return subjectIds
     */
    List<Long> querySubjectIdsByCategoryIdAndLabelId(Long categoryId, Long labelId);

    List<Long> queryLabelIdsBySubjectId(Long id);

    void batchInsert(List<SubjectMapping> mappingList);
}
